
package com.biblum.topgas;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.util.Log;
import android.view.Gravity;
import android.widget.Toast;


public class PreferencesActivity extends PreferenceActivity {
	
	
	public static final String TAG = "PreferencesActivity";
	
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

	    Bundle bundle = getIntent().getExtras();	    
	    String pantalla = bundle.getString(Constantes.ATRIBUTO_PREFERENCIAS_MOSTRAR);
        
        /* Esta parte solo funcoina para versiones modernas de android , las que tienen el PreferencesFragment
        
	    getFragmentManager().beginTransaction().replace(android.R.id.content,
                new MyPreferencesFragment(pantalla)).commit();
	    */
        
        addPreferencesFromResource(R.layout.preferences);
        
        PreferenceScreen ps = (PreferenceScreen) findPreference(pantalla);
        setPreferenceScreen(ps);            
        
        
	}
    
    
    protected void onPause()
    {
    	super.onPause();

    	//comprobamos si ha cambiao el combustible. En ese caso tenemos que actualizar los precios
    	actualizarPreciosSiProcede();
    	
    	actualizarDescuentos();
    }

    protected void onSuspend()
    {

    	//comprobamos si ha cambiao el combustible. En ese caso tenemos que actualizar los precios
    	actualizarPreciosSiProcede();
    	
    	actualizarDescuentos();
    }

	private void actualizarDescuentos()
	{
		DescuentosData.getInstance().actualizarDescuentos(this);
		
		// si no ha cambiado el combustible, solo tenemos que actualizar los precios por
		// si se ha modificado algun descuento
		EstacionesData.getInstance(this).actualizarPreciosEstaciones();			
		
	}
        
    private void actualizarPreciosSiProcede()
    {
    	SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);    	
    	
		String elCombustible = sharedPrefs.getString("combustible",Constantes.COMBUSTIBLE_DEFECTO);
				
		String combustibleDescargado=EstacionesData.getInstance(this).getCombustible();
		
		Log.d(TAG, "Combustible seleccionado=" + elCombustible + " combustible descargado=" + combustibleDescargado);
		
		// si se ha modificado el combustible, hay que volver a cargar los precios
		if ( !elCombustible.equals(combustibleDescargado))
		{
			
			EstacionesData.getInstance(this).getDataFromServer(this);
			
			Toast toast = Toast.makeText(getApplicationContext(), R.string.actualizando_precios, Toast.LENGTH_LONG);
			toast.setGravity(Gravity.CENTER, 0, 0);
			toast.setDuration(6);			
			toast.show();

		}   
    }
    
}
